home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr11 / intmemry.zip / MEMO1158.TXT < prev    next >
Text File  |  1992-12-02  |  8KB  |  155 lines

  1.   ╔═════════════════════════════════════════════════════════════════════════╗
  2.   ║                                                                         ║
  3.   ║                      DOS 5.0 Upper Memory Blocks                        ║
  4.   ║                                                                         ║
  5.   ╚═════════════════════════════════════════════════════════════════════════╝
  6.  
  7. DOS 5.0 UPPER MEMORY BLOCK SUPPORT
  8.  
  9.   DOS 5.0 is the first version of DOS to recognize and make use of Upper
  10.   Memory Blocks, or UMBs.  To understand what that means, it is first
  11.   necessary to understand UMBs.
  12.  
  13.   All PC compatible computers are based on one of the x86 family of Intel
  14.   microprocessors.  This family includes the 8086, 8088, 80286, i386 SX,
  15.   i386 DX, i486 SX and i486 DX.  DOS works on all these CPUs, but in order
  16.   to maintain backward compatibility with the 8086/8088, DOS is limited to
  17.   REAL mode on all these processors.
  18.  
  19.   This means the processor is essentially limited to addressing 1024k, or
  20.   one megabyte, of memory address space.  (For an interesting exception,
  21.   refer to our article on DOS 5.0 and the High Memory Area, FaxBACK document
  22.   number 1250.)
  23.  
  24.   Design decisions made when the original PCs were being created caused this
  25.   one-megabyte address range to be divided into 640k address space for user
  26.   addressable RAM, and 384k address space for system ROM BIOS, video buffer
  27.   memory and add-in boards.  Common uses of this memory area include network
  28.   card ROMs and RAM, EGA or VGA card ROMs and the 64k address range used by
  29.   an EMS board such as the Above Board Plus or Above Board MC.
  30.  
  31.   This 384k address range, while not "conventional" DOS memory, is
  32.   addressable by the CPU in REAL mode and can be used for either RAM or ROM.
  33.   As the 640k of "conventional" memory became more and more crowded with
  34.   TSRs, network drivers, mouse drivers and other utilities, and as DOS
  35.   applications required more and more memory, the PC industry began looking
  36.   at this 384k address range for potential help in making all the pieces
  37.   fit.
  38.  
  39.   UMBs are blocks of RAM that have been "mapped" into unused address space
  40.   in the "reserved" 384k from 640 to 1024.  This is done in two different
  41.   ways, depending on the CPU in the specific PC.
  42.  
  43.   PCs based on the 8086/8088 or the 286 processor will require hardware that
  44.   actually decodes RAM at the address range where the UMBs are being
  45.   provided.  This can be on the motherboard, although relatively few
  46.   motherboards implement this feature, or it can be on an add-in board. Both
  47.   the Above Board Plus and the Above Board MC can map memory into the
  48.   address spaces where UMBs are provided.
  49.  
  50.   PCs based on i386 SX or later processors have a unique ability.  The
  51.   processor on these PCs has an internal mapping capability that allows any
  52.   of the memory that the CPU can access to be remapped at any address. This
  53.   allows the CPU to "fill" the unused address ranges between 640k and 1024k
  54.   with RAM if two conditions are met:
  55.  
  56.        1.   There must be sufficient EXTENDED memory.
  57.        2.   The PC must be running a 386 control program that implements
  58.             this feature.
  59.  
  60.   Previous to DOS 5.0, there was no support or even recognition of UMBs in
  61.   DOS itself.  To take advantage of this address range, the PC owner was
  62.   required to purchase separate utilities that would map and manage the
  63.   memory.
  64.  
  65.   Such utilities as QRAM and MOVE'M worked with EMS boards, such as the
  66.   Above Board product line, to "capture" pages of RAM mapped into the
  67.   reserve address range and then to load TSRs, drivers, etc into this RAM.
  68.   Utilities like QEMM386 or 386MAX worked in PCs based on i386 SX or later
  69.   CPUs to accomplish the same tasks, without the need for EMS boards,
  70.   providing the PC had sufficient EXTENDED memory.
  71.  
  72.   DOS 5.0 supports the use of UMBs.  It does this through essentially two
  73.   means:
  74.  
  75.   EMM386.EXE
  76.        EMM386.EXE is a 386 control program that runs on most i386 or i486
  77.        systems with sufficient EXTENDED memory and that provides support
  78.        for both EMS applications and UMBs.
  79.        (Note - this is the only provision built into DOS 5.0 for
  80.        providing UMBs, and it only works on i386 SX or later systems.)
  81.  
  82.   DOS=UMB
  83.        This statement, added to your CONFIG.SYS file, causes DOS to take
  84.        control of any DOS 5.0 compatible UMBs that exist in your system,
  85.        and allow DOS to load code into those UMBs via the DOS internal
  86.        commands DEVICEHIGH and LOADHIGH.
  87.  
  88.        DEVICEHIGH is used in the CONFIG.SYS instead of DEVICE as in:
  89.        DEVICEHIGH=C:\DOS\ANSI.SYS.
  90.  
  91.        LOADHIGH is used anywhere a TSR would be executed as if from the
  92.        command line. Therefore you would use LOADHIGH on the command line
  93.        or in batch files such as the AUTOEXEC.BAT file. LOADHIGH can be
  94.        abbreviated to LH as in: LOADHIGH MOUSE.COM or  LH MOUSE.COM.
  95.  
  96.   It is important to remember that DOS 5.0, with the exception of
  97.   EMM386.EXE, makes no provision for providing UMBs. In other words, PCs
  98.   based on the 8086, 8088 or 286 CPU will still require an EMS board, and a
  99.   utility such as QRAM or MOVE'M to map memory into the reserved memory
  100.   address ranges used for UMBs.  Also, since the UMBs provided by such a
  101.   utility may not be DOS 5.0 compatible, you may not be able to use the
  102.   DOS=UMB command.
  103.  
  104.   This will not keep you from taking advantage of UMBs on such systems. The
  105.   utilities that provide UMB support come with their own equivalent of
  106.   DEVICEHIGH or LOADHIGH that allows TSRs and drivers to be loaded into
  107.   these UMBs.  Even better, these utilities usually come with an
  108.   installation program that optimizes the use of UMBs, matching appropriate
  109.   blocks of memory with appropriate files.  At this point, DOS 5.0 provides
  110.   no such utility.
  111.  
  112.   Some day, no doubt, TSRs and drivers will be written to work directly with
  113.   DOS in the use of UMBs.  Some day DOS may even load some of its own system
  114.   files into UMBs, instead of just allowing drivers or TSRs to be loaded
  115.   there.  Until this happens, however, the DOS 5.0 user is better off to use
  116.   the utilities provided with his UMB software to manage the UMBs in the
  117.   system, and not use the DOS=UMB command. The exception is the EMM386.EXE
  118.   user, who must use the DOS=UMB command to gain access to UMBs.
  119.  
  120.   REQUIREMENTS for Upper Memory Blocks:
  121.  
  122.   8086/8088/286 based systems
  123.   1.   Hardware (Above Board) that decodes memory in the reserved range
  124.   2.   Software (such as QRAM or MOVE'M) that will manage this memory
  125.  
  126.   i386 SX or later systems
  127.   1.   Sufficient EXTENDED memory
  128.   2.   386 control software (such as EMM386.EXE, QEMM386 or 386MAX)
  129.  
  130.   There is a third requirement in all systems - free address space!  Keep in
  131.   mind:
  132.  
  133.   Video Buffer area - A000 to BFFF
  134.   EGA card ROMS    C000 to C3FF
  135.   VGA card ROMS    C000 to C7FF
  136.   Network cards    32k to 64k of ROM and RAM in C000-DFFF range
  137.   System BIOS      Ranges from 32k to 128k, ending at FFFF
  138.   Unused ROM sites IBM AT, as well as others, have sockets on the
  139.                    motherboard for ROMs that would decode in the E000-EFFF 
  140.                    range. Therefore on these computers, that range can not 
  141.                    be used for UMBs.
  142.   Hard Disk ROMS   XT-type controllers, as well as ESDI controllers
  143.                    for ATs and Micro Channel machines, have ROM that 
  144.                    decode in this range.
  145.   EMS page frame   If your system has LIM Expanded memory, there will
  146.                    most likely be a 64k page frame somewhere in this 
  147.                    area.
  148.   
  149.   Remember, UMBs CAN NOT be provided in address space already used by other
  150.   devices - either for RAM or ROM.
  151.  
  152.  
  153. ══════════════════════════════════════════════════════════════════════════════
  154. End of file                 Intel FaxBack # 1158          December 2,1992
  155.